﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using ModelCheckUtility.ModelLayer;

namespace FrontRoomCheck.Model
{
	public class FrontRoomPacker : BaseRoomPacker
	{
		public FrontRoomPacker(Room inputValue, RevitLinkInstance useLink) : base(inputValue, null)
		{
			if (inputValue != null)
			{
				this.roomSurface = base.ThisRoom.Area;
			}
		}

		internal double RoomSurface
		{
			get
			{
				return this.roomSurface;
			}
		}

		internal List<FrontRoomPacker> NearFrontRooms
		{
			get
			{
				List<FrontRoomPacker> list = new List<FrontRoomPacker>();
				foreach (BaseRoomPacker baseRoomPacker in base.LstNearBaseRoomPacker)
				{
					FrontRoomPacker frontRoomPacker = baseRoomPacker as FrontRoomPacker;
					if (frontRoomPacker != null)
					{
						list.Add(frontRoomPacker);
					}
				}
				return list;
			}
		}

		internal List<FrontRoomDoorPacker> thisFrontRoomDoor
		{
			get
			{
				List<FrontRoomDoorPacker> list = new List<FrontRoomDoorPacker>();
				foreach (BaseDoorPacker baseDoorPacker in base.LstBaseDoorPacker)
				{
					FrontRoomDoorPacker frontRoomDoorPacker = baseDoorPacker as FrontRoomDoorPacker;
					if (frontRoomDoorPacker != null)
					{
						list.Add(frontRoomDoorPacker);
					}
				}
				return list;
			}
		}

		internal bool AddValueToRoom(string inputValues)
		{
			return false;
		}

		public bool IfKeep
		{
			get
			{
				return this.ifkeep;
			}
			set
			{
				this.ifkeep = value;
			}
		}

		public bool IsFrontRoom
		{
			get
			{
				return this.isfrontroom;
			}
			set
			{
				this.isfrontroom = value;
			}
		}

		public int FireProofDoorNum
		{
			get
			{
				return this.m_FireProofDoorNum;
			}
			set
			{
				this.m_FireProofDoorNum = value;
			}
		}

		public int StairfDoorNum
		{
			get
			{
				return this.m_StairDoorNum;
			}
			set
			{
				this.m_StairDoorNum = value;
			}
		}

		internal FrontRoomKindEnum ThisKind
		{
			get
			{
				return this.thisKind;
			}
			set
			{
				this.thisKind = value;
			}
		}

		private bool isfrontroom;

		private FrontRoomKindEnum thisKind;

		private double roomSurface;

		private bool ifkeep;

		private int m_FireProofDoorNum;

		private int m_StairDoorNum;

		public FrontRoomDoor thisDoorNum;

		public FrontRoomAreaOrSide thisAreaOrSide;

		public bool bIsNameMatch;
	}
}
